iT邦幫忙

2025 iThome 鐵人賽

DAY 16
1

接下來要開始實作 新的 crate

背景如下 :

當我們拿歷史資料訓練後出一個模型後,我們在實盤上要引入這個模型,根據輸出值,做判斷,其實就很像一個指標,那 Nautilus trader 都已經有封裝好的交易指標 crate,那我們也可以針對 ML trade 也做成一個crate,做到效能更高.

根據昨天的研究.我們會使用 PyO3 的方式,直接結合 Python 和 Rust,但可以看到的是目前像 indicators 這個 crates 是還沒有 在 make build 裡面被執行的,所以我猜是還沒整合完畢, indicators 還是使用 Cython 實作的

https://ithelp.ithome.com.tw/upload/images/20250821/20177999zuh8Yv9Vw9.png
看起來還沒有引入 indicators

所以要改變一下方式,不直接透過 make build 去產生 .so,而是另外獨立編譯新的 crate ,這樣一來也不用受到他原本框架的限制,有點偷吃步,但因為他們也在往不用 Cython FFI 的方向前進.所以覺得這個做法還能接受吧哈哈

實盤上比較重要的是產出 推論結果 尤其是如果需要多標的 多類別的預測值的時候 計算速度就要很快.如果用 Pytorch 的 計算方式 ,那個延遲就會比較多,所以方法是先訊練完模型後.把模型存成通用格式,用 Rust 來撰寫載入模型和推論 crate.

接下來的幾天會針對這個功能做開發,task大概如下:

  1. 決定使用的模型 產出測試模型 並轉換為 Rust 可讀的格式
  2. 建立專案 實作推論邏輯
  3. 產出 .so 並測試
  4. 整合進主系統
  5. 做效能優化
  6. 加入更多模型

前面幾天的內容有些有缺失,會再找時間將內容補齊.


上一篇
【Day15】- NautilusTrader 如何結合 Rust 和 Python
下一篇
【Day17】- 轉換模型為Rust可讀
系列文
NautilusTrader 架構解析:Rust 在高效能量化交易平台中的角色與優勢22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言